#ifndef BHXJGLPOINTER1_H
#define BHXJGLPOINTER1_H
#include<BHXJControls_global.h>
#include<BHXJGLHelper/bhxjglshader.h>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include<QColor>
#include<BHXJGLHelper/bhxjglmodel.h>
class BHXJCONTROLS_EXPORT BHXJGLPointer1
{
public:
    BHXJGLPointer1();
    virtual ~BHXJGLPointer1();
    void Init(QOpenGLFunctions_4_3_Core *g,BHXJGLShader *s);
//    void Paint(const glm::vec3 &size, const glm::vec3 &position,const glm::vec3 &up,const glm::vec3 &right
//                                ,const glm::mat4 &view,const glm::mat4 &projection);

    void Paint(const BHXJGLPaintParam& p);
    QColor Color0(){return _Color0;}
    void setColor0(const QColor &value){_Color0=value;}
    QColor Color1(){return _Color1;}
    void setColor1(const QColor &value){_Color1=value;}
    QColor Color2(){return _Color2;}
    void setColor2(const QColor &value){_Color2=value;}
    QColor Color3(){return _Color3;}
    void setColor3(const QColor &value){_Color3=value;}
protected:
    QColor _Color0=Qt::red;
    QColor _Color1=Qt::blue;
    QColor _Color2=Qt::blue;
    QColor _Color3=Qt::red;
    unsigned int VAO=0;
    unsigned int VBO=0;
    unsigned int EBO=0;
    QOpenGLFunctions_4_3_Core *gl=nullptr;
    BHXJGLShader *shader=nullptr;
};

#endif // BHXJGLPOINTER1_H
